﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MailMarketing.Models.Entity;
using MailMarketing.Models.Repositorio;

namespace MailMarketing.Controllers
{
    public class VendedoresController : Controller
    {
        private RepositorioVendedores objRepositorioVendedores;

        public VendedoresController()
        {
            objRepositorioVendedores = new RepositorioVendedores();
        }

        //
        // GET: /Vendedores/

        [Authorize(Roles = "Administrador,Financeiro")]
        public ActionResult Index()
        {
            List<Vendedor> vendedores = objRepositorioVendedores.todos(); 
            return View(vendedores);
        }

        //
        // GET: /Vendedores/Novo

        [Authorize(Roles = "Administrador,Financeiro")]
        public ActionResult Novo()
        {
            Vendedor objVendedor = new Vendedor();
            return View(objVendedor);
        } 

        //
        // POST: /Vendedores/Novo
        [HttpPost]
        [Authorize(Roles = "Administrador,Financeiro")]
        public ActionResult Novo(Vendedor vendedor)
        {
            try
            {
                objRepositorioVendedores.adicionar(vendedor);
                return RedirectToAction("Index");
            }
            catch
            {
                return View(vendedor);
            }
        }
        
        //
        // GET: /Vendedores/Editar/5
        [Authorize(Roles = "Administrador,Financeiro")]
        public ActionResult Editar(int id)
        {
            Vendedor vendedor = objRepositorioVendedores.obterPorId(id);
            return View(vendedor);
        }

        //
        // POST: /Vendedores/Editar/5
        [HttpPost]
        [Authorize(Roles = "Administrador,Financeiro")]
        public ActionResult Editar(int id, FormCollection collection)
        {
            Vendedor vendedor = objRepositorioVendedores.obterPorId(id);
            try
            {
                vendedor.Nome = collection["Nome"].ToString();

                UpdateModel(vendedor,"Vendedores");
                objRepositorioVendedores.salvar();
                return RedirectToAction("Index");
            }
            catch
            {
                return View(vendedor);
            }
        }

        //
        // GET: /Vendedores/Excluir/5
        [Authorize(Roles = "Administrador,Financeiro")]
        public ActionResult Excluir(int id)
        {
            Vendedor vendedor = objRepositorioVendedores.obterPorId(id);
            return View(vendedor);
        }

        //
        // POST: /Vendedores/Excluir/5
        [HttpPost]
        [Authorize(Roles = "Administrador,Financeiro")]
        public ActionResult Excluir(int id, FormCollection collection)
        {
            Vendedor vendedor = objRepositorioVendedores.obterPorId(id);
            try
            {
                objRepositorioVendedores.remover(id);
                return RedirectToAction("Index");
            }
            catch
            {
                return View(vendedor);
            }
        }
    }
}
